package com.liangtian.mdm.dm.attribute.service;

import com.liangtian.mdm.dm.attribute.model.Attribute;

import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
import java.util.Map;

public interface AttributeService {

    /**
     * 属性列表页面数据查询
     *
     * @param attribute
     * @return
     */
    public List<Attribute> queryAll(Attribute attribute);

    /**
     * 批量删除
     *
     * @param map
     * @return
     */
    public int batchDelAttr(String[] ids, String modelId);

    /**
     * 新增
     *
     * @param attribute
     */
    public void attrAdd(Attribute attribute);

    /**
     * 校验同一模型属性名称重复
     *
     * @param map
     * @return
     */
    public int checkAttrName(Attribute attribute);

    /**
     * 编辑
     *
     * @param attribute
     * @return
     */
    public int editAttr(Attribute attribute);

    /**
     * 编辑时校验属性名称重复
     *
     * @param attribute
     * @return
     */
    public int checkAttrNameEdit(Attribute attribute);

    /**
     * 根据模型ID和属性ID查询某一条属性的具体信息
     *
     * @param attribute
     * @return
     */
    public Attribute selectAttributeById(Attribute attribute);

    /**
     * 导出属性模板
     *
     * @param
     * @return
     */
    void attributeExport(HttpServletResponse resp);  //属性模板导出

    /**
     * 导入属性
     *
     * @param modelId,InputStream
     * @return
     */
    Map<String, Object> attributeImport(String modelId, InputStream input);  //excel导入

    //模型复制功能
    int copyAttrubute(Map<String, Object> param);
}
